#ifndef TURBO_TURBULENTMODELS_GARBARUKTURBULENTMODEL
#define TURBO_TURBULENTMODELS_GARBARUKTURBULENTMODEL

#include "turbulentmodelbase.h"
#include "grid.h"
#include "model.h"

class GarbarukTurbulentModel : public TurbulentModelBase {
private:
	//

	//Compute turbulent viscosity by Garbaruk-Lapin-Strelec model
	double ComputeTurbViscosityGLS(Cell& c)
	{
		//if(Re<Re_cr) return 0; something for laminar case
		//double y = c.CellCenter.y;  //Wall distance
		//double Delta = ComputeDisplacementThickness();
		//if(Delta==0) throw Exception("Zero boundary layer thickness";
		//double Ucr = ComputeShearVelocity();		//Ucr = sqrt(tau_wall/rho)
		//
		//double gamma = 1.0/(1 + 5.5*pow((y/Delta), 6);  //Hlebanov function
		//double K = 0.41;	//Karman constant
		//double A = 12.0;	//for VanDriest function
		//double Dvd = pow(1 - exp((-1)*nys*y/(medium.Viscosity*A)), 3);	//Van Driest
		//return K*Ucr*min(y*Dvd, Delta*gamma);
	};	
public:
	double GetTurbulentViscosity(Cell& c);
};

#endif